import type { InteractionForm, InteractionQuery, InteractionVO } from './model';

import type { ID, IDS, PageResult } from '#/api/common';

import { commonExport } from '#/api/helper';
import { requestClient } from '#/api/request';

/**
 * 查询AI互动任务列表
 * @param params
 * @returns AI互动任务列表
 */
export function interactionList(params?: InteractionQuery) {
  return requestClient.get<PageResult<InteractionVO>>('/system/interaction/list', {
    params,
  });
}

/**
 * 导出AI互动任务列表
 * @param params
 * @returns AI互动任务列表
 */
export function interactionExport(params?: InteractionQuery) {
  return commonExport('/ai/interaction/export', params ?? {});
}

/**
 * 查询AI互动任务详情
 * @param id id
 * @returns AI互动任务详情
 */
export function interactionInfo(id: ID) {
  return requestClient.get<InteractionVO>(`/system/interaction/${id}`);
}

/**
 * 新增AI互动任务
 * @param data
 * @returns void
 */
export function interactionAdd(data: InteractionForm) {
  return requestClient.postWithMsg<void>('/system/interaction', data);
}

/**
 * 更新AI互动任务
 * @param data
 * @returns void
 */
export function interactionUpdate(data: InteractionForm) {
  return requestClient.putWithMsg<void>('/system/interaction', data);
}

/**
 * 删除AI互动任务
 * @param id id
 * @returns void
 */
export function interactionRemove(id: ID | IDS) {
  return requestClient.deleteWithMsg<void>(`/system/interaction/${id}`);
}

/**
 * 发布AI互动任务
 * @param data 发布数据
 * @returns 发布结果
 */
export function interactionIssue(data: any) {
  return requestClient.postWithMsg<void>('/system/interaction/issue', data);
}
